home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat4 / ar.z / ar
Encoding:
Text File  |  1998-10-30  |  3.5 KB  |  133 lines

  1.  
  2.  
  3.  
  4. AAAARRRR((((4444))))                                                                    AAAARRRR((((4444))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ar - archive (library) file format
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      ####iiiinnnncccclllluuuuddddeeee <<<<aaaarrrr....hhhh>>>>
  13.  
  14. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  15.      The archive command _a_r combines several files into one.  Archives are
  16.      used mainly as libraries to be searched by the link-editor _l_d.
  17.  
  18.      A file produced by _a_r has a magic string at the start, followed by the
  19.      constituent files, each preceded by a file header.  The magic number and
  20.      header layout as described in the include file are:
  21.  
  22.           #define ARMAG  "!<arch>\n"
  23.           #define SARMAG 8
  24.           #define ARFMAG "`\n"
  25.  
  26.           struct ar_hdr
  27.           {
  28.                   char   ar_name[16];
  29.                   char   ar_date[12];
  30.                   char   ar_uid[6];
  31.                   char   ar_gid[6];
  32.                   char   ar_mode[8];
  33.                   char   ar_size[10];
  34.                   char   ar_fmag[2];
  35.           };
  36.           typedef struct ar_hdr ARHDR;
  37.  
  38.      The name is terminated with a "/" character by default.  Any remaining
  39.      room in the name field is blank_filled.
  40.  
  41.      File names can be any length: they re not limited to 15 characters.  For
  42.      additional details, see the ABI book mentioned below and the _a_r(1) man
  43.      page.
  44.  
  45.      The _a_r__f_m_a_g field contains ARFMAG to help verify the presence of a
  46.      header.  The other fields are left-adjusted, blank-padded numbers.  They
  47.      are decimal except for _a_r__m_o_d_e, which is octal.  The date is the
  48.      modification date of the file at the time of its insertion into the
  49.      archive.
  50.  
  51.      Each file begins on a even (0 mod 2) boundary.  With compiler releases
  52.      7.0 and lower, a new-line is inserted between files if necessary.  The
  53.      size given reflects the actual size of the file exclusive of padding.
  54.      With compiler releases 7.1 and higher, in order to guarantee that each
  55.      ELF format file is 16-byte aligned in the archive, additional padding has
  56.      been added to the end of each file to achieve that, using the character
  57.      '\0'.  This enables the loader (ld) to have faster access to members in
  58.      the archive while performing static linking.  This results in the change
  59.      of size of files permanently, normally increased by 1 to 15 bytes.  With
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. AAAARRRR((((4444))))                                                                    AAAARRRR((((4444))))
  71.  
  72.  
  73.  
  74.      non-ELF files, this padding would not occur.
  75.  
  76.      There is no provision for empty areas in an archive file.
  77.  
  78.      The encoding of the header is portable across machines.  If an archive
  79.      contains printable files, the archive itself is printable.
  80.  
  81. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  82.      ar(1), ld(1), nm(1),
  83.  
  84.      System V Application Binary Interface, ISBN 0-13-877598-2, Prentice Hall
  85.      _S_y_s_t_e_m _V _A_B_I _M_I_P_S _P_r_o_c_e_s_s_o_r _S_u_p_p_l_e_m_e_n_t, ISBN 0-13-880170-3, Prentice Hall
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.